In recent years, nonvolatile memory semiconductor devices, in which data is rewritable, have been widely used. In a flash memory that is a typical nonvolatile memory, a transistor composing a memory cell has a floating gate or an insulation film known as charge storage layer. Data is stored by accumulating charges in the charge storage layer.
In NAND flash memories, programming and reading are performed together on a page basis (for example, 2K Bytes). For this reason, there is provided a latch circuit latching data for one page, and the data for one page is programmed into a memory cell array from the latch circuit at the same time. The NAND flash memories generally have memory cells with the floating gates serving as charge storage layers. Writing data into a memory cell is performed by supplying a voltage between a control gate arranged on the floating gate and a substrate. This produces a FN tunneling current to flow across a tunnel oxide film interposed between the charge storage layer and a channel layer, and then the charges (electrons) are stored in the charge storage layer.
Meanwhile, there have been developed Silicon Oxide Nitride Oxide Silicon (SONOS) flash memories, in which charges are stored in a trap layer formed of a silicon nitride film, for a higher storage capacity. In addition, among the flash memories, there have been developed flash memories in which two charge storage regions are provided in the charge storage layer of one transistor. For example, U.S. Pat. No. 6,011,725 discloses a memory cell (transistor) having two charge storage regions arranged between the gate electrode and the semiconductor substrate. This memory cell is a virtual ground memory cell, which symmetrically operates with source and drain thereof interchanged. Also, one memory cell can store two bits. A SONOS flash memory has the same interface with the outside as that of a NOR flash memory. Writing the data into the memory cell is performed by supplying a high voltage to the drain and the control gate. This causes hot electrons to be injected into the charge storage layer, and then the charges (electrons) are stored in the charge storage layer.
Also, for a higher-speed programming, Japanese Patent Application Publication No. 5-298894 and Japanese Patent Application Publication No. 62-162299 propose techniques, by which when the number of bits having data “0” (write state) in the input data is greater than a given number, inverted data of the input data and flag data indicative of the inverted data are programmed into a memory cell.
In nonvolatile memories, writing into the memory cell is performed by injecting charge in the charge storage layer. This makes longer the programming time of the data into the memory cell array. For example, in recent years, with respect to the virtual ground flash memories, studies have been done on the flash memories having a NAND interface. The original NAND flash memories utilize the FN tunneling effect such that a large amount of data for one page can be programmed at the same time. Meanwhile, the virtual ground flash memories employ the hot electron effect to write data such that a large amount of current is needed for writing but only a small amount of data can be written at the same time. Consequently, in the operation of the virtual ground of flash memory with a NAND interface, it is difficult to program data for one page in a short period. Moreover, it is also difficult to read data in the flash memory in a short period.